home *** CD-ROM | disk | FTP | other *** search
- /* AboutBox.c */
- /*****************************************************************************/
- /* */
- /* Out Of Phase: Digital Music Synthesis on General Purpose Computers */
- /* Copyright (C) 1994 Thomas R. Lawrence */
- /* */
- /* This program is free software; you can redistribute it and/or modify */
- /* it under the terms of the GNU General Public License as published by */
- /* the Free Software Foundation; either version 2 of the License, or */
- /* (at your option) any later version. */
- /* */
- /* This program is distributed in the hope that it will be useful, */
- /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
- /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
- /* GNU General Public License for more details. */
- /* */
- /* You should have received a copy of the GNU General Public License */
- /* along with this program; if not, write to the Free Software */
- /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- /* */
- /* Thomas R. Lawrence can be reached at tomlaw@world.std.com. */
- /* */
- /*****************************************************************************/
-
- #include "MiscInfo.h"
- #include "Debug.h"
- #include "Audit.h"
- #include "Definitions.h"
-
- #include "AboutBox.h"
- #include "TextEdit.h"
- #include "WindowDispatcher.h"
- #include "Memory.h"
- #include "DataMunging.h"
- #include "Main.h"
-
-
- #define WIDTH (480)
- #define HEIGHT (300)
-
- #define IPWidth (304)
- #define IPHeight (54)
- #define IPX ((WIDTH - IPWidth) / 2)
- #define IPY (12)
-
- #define PresentsY (IPY + IPHeight + 2)
-
- #define StupidWidth (272)
- #define StupidHeight (37)
- #define StupidX ((WIDTH - StupidWidth) / 2)
- #define StupidY (PresentsY + 32)
-
- #define IconWidth (32)
- #define IconHeight (32)
- #define IconX (WIDTH - IconWidth - 12)
- #define IconY (12)
-
- #define EditX (-1)
- #define EditY (StupidY + StupidHeight + 10)
- #define EditWidth (WIDTH + 2)
- #define EditHeight (HEIGHT - EditY - 20)
-
-
- struct AboutBoxWindowRec
- {
- WinType* ScreenID;
- TextEditRec* Information;
- GenericWindowRec* MyGenericWindow; /* how the window event dispatcher knows us */
- };
-
-
- /* prototypes */
- static void AboutBoxWindowDoIdle(AboutBoxWindowRec* Window,
- MyBoolean CheckCursorFlag, OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers);
- static void AboutBoxWindowBecomeActive(AboutBoxWindowRec* Window);
- static void AboutBoxWindowBecomeInactive(AboutBoxWindowRec* Window);
- static void AboutBoxWindowJustResized(AboutBoxWindowRec* Window);
- static void AboutBoxWindowDoMouseDown(OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window);
- static void AboutBoxWindowDoKeyDown(unsigned char KeyCode,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window);
- static void AboutBoxWindowClose(AboutBoxWindowRec* Window);
- static void AboutBoxWindowUpdator(AboutBoxWindowRec* Window);
- static void AboutBoxWindowMenuSetup(AboutBoxWindowRec* Window);
- static void AboutBoxWindowDoMenuCommand(AboutBoxWindowRec* Window,
- MenuItemType* MenuItem);
-
-
- static unsigned char IntegralProductionsdx[] =
- {
- 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xF8,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x03,0xFE,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x07,0x7E,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x06,0x3E,0x00,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x0C,0x1E,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x0C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x0F,0xFC,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x07,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x03,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x01,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x01,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
- 0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x06,0x78,0xFE,0x1E,0x01,0xF0,0x33,0x8F,0x81,0x80,0x03,0x01,0x99,0xC3,0xE0,0x1E,0xCF,0x1E,0x03,0xC7,0xF3,0x01,0xF0,0x33,0xC1,0xE8,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
-
- static unsigned char NameOfProgram[] =
- {
- 0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFE,0x00,0x00,0x7F,0xE0,0x00,0x7F,0xFF,0x80,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0xFF,0xFF,0x80,0x01,0xFF,0xF0,0x00,0xFF,0xFF,0xF0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x03,0xF8,0x3F,0x80,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x01,0xFC,0x1F,0xC0,0x03,0xFF,0xF0,0x00,0xFF,0xFF,0xF8,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x07,0xE0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x03,0xF0,0x0F,0xE0,0x03,0xF1,0xF0,0x00,0x3F,0xC3,0xF8,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x0F,0xC0,0x0F,0xC0,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x07,0xE0,0x07,0xE0,0x07,0xF0,0xE0,0x00,0x3F,0xC1,0xFC,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x1F,0xC0,0x0F,0xE0,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x0F,0xE0,0x07,0xF0,0x07,0xE0,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x3F,0x80,0x07,0xE0,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x1F,0xC0,0x03,0xF0,0x0F,0xE0,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x3F,0x80,0x07,0xF0,0x1F,0x83,0xF8,0x0F,0xFF,0xC0,0x00,0x1F,0xC0,0x03,0xF8,0x7F,0xFC,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xC7,0xE0,0x00,0x3F,0x9F,0xC0,0x07,0xF8,0x00,0x07,0xF0,
- 0x7F,0x00,0x07,0xF3,0xFF,0x83,0xF8,0x1F,0xFF,0xC0,0x00,0x3F,0x80,0x03,0xF8,0xFF,0xFC,0x00,0x00,0x3F,0x81,0xFC,0x1F,0xDF,0xF8,0x00,0xFF,0xFF,0xC0,0x1F,0xFE,0x00,0x3F,0xFC,
- 0x7F,0x00,0x07,0xF3,0xFF,0x87,0xF8,0x1F,0xFF,0xC0,0x00,0x3F,0x80,0x03,0xF8,0xFF,0xF8,0x00,0x00,0x3F,0x81,0xFC,0x3F,0xFF,0xF8,0x01,0xFF,0xFF,0xC0,0x7F,0xFF,0x80,0xFF,0xFE,
- 0x7F,0x00,0x07,0xF3,0xFF,0x07,0xF0,0x07,0xF0,0x00,0x00,0x3F,0x80,0x03,0xF8,0x1F,0xE0,0x00,0x00,0x7F,0x83,0xF8,0x3F,0xFF,0xFC,0x07,0xF8,0x7F,0x80,0xFE,0x3F,0x81,0xFC,0x7F,
- 0xFE,0x00,0x07,0xF0,0xFF,0x07,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0x07,0xF8,0x3F,0xE3,0xFC,0x07,0xF0,0x3F,0x80,0xFC,0x1F,0x83,0xF8,0x3F,
- 0xFE,0x00,0x07,0xF0,0x7F,0x07,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0x0F,0xF0,0x3F,0x81,0xFC,0x0F,0xE0,0x3F,0x81,0xFC,0x07,0x07,0xF0,0x3F,
- 0xFE,0x00,0x07,0xF0,0x7F,0x07,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0xFF,0xE0,0x3F,0x81,0xFC,0x1F,0xC0,0x3F,0x81,0xFE,0x00,0x07,0xF0,0x3F,
- 0xFE,0x00,0x07,0xF0,0xFF,0x0F,0xF0,0x07,0xF0,0x00,0x00,0x7F,0x00,0x03,0xF8,0x1F,0xC0,0x00,0x00,0x7F,0xFF,0xC0,0x7F,0x81,0xFC,0x1F,0xC0,0x3F,0x81,0xFF,0xC0,0x0F,0xE0,0x7E,
- 0xFE,0x00,0x0F,0xE0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x07,0xF0,0x1F,0xC0,0x00,0x00,0x7F,0xFF,0x00,0x7F,0x01,0xF8,0x3F,0x80,0x7F,0x01,0xFF,0xF8,0x0F,0xE3,0xFE,
- 0xFE,0x00,0x0F,0xE0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x07,0xF0,0x1F,0xC0,0x00,0x00,0xFF,0x00,0x00,0x7F,0x03,0xF8,0x3F,0x80,0x7F,0x00,0xFF,0xFC,0x1F,0xFF,0xFC,
- 0xFE,0x00,0x0F,0xE0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x07,0xF0,0x3F,0xC0,0x00,0x00,0xFE,0x00,0x00,0x7F,0x03,0xF8,0x3F,0x80,0x7F,0x00,0x7F,0xFE,0x1F,0xFF,0xE0,
- 0xFE,0x00,0x1F,0xC0,0xFE,0x0F,0xE0,0x0F,0xE0,0x00,0x00,0x7F,0x00,0x0F,0xE0,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0x7F,0x03,0xF8,0x3F,0x80,0x7F,0x00,0x0F,0xFF,0x1F,0xFF,0x00,
- 0x7E,0x00,0x1F,0xC1,0xFC,0x1F,0xE0,0x0F,0xE0,0x00,0x00,0x3F,0x00,0x0F,0xE0,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0xFF,0x03,0xF0,0x3F,0x80,0xFF,0x00,0x01,0xFF,0x1F,0xC0,0x00,
- 0x7F,0x00,0x3F,0x81,0xFC,0x1F,0xC0,0x1F,0xC0,0x00,0x00,0x3F,0x80,0x1F,0xC0,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0xFE,0x07,0xF0,0x3F,0x80,0xFF,0x03,0x80,0xFF,0x1F,0xC0,0x00,
- 0x3F,0x00,0x3F,0x01,0xFC,0x1F,0xC0,0x1F,0xC3,0x00,0x00,0x1F,0x80,0x1F,0x80,0x3F,0x80,0x00,0x00,0xFE,0x00,0x00,0xFE,0x07,0xF0,0x3F,0x81,0xFF,0x07,0xE0,0x7F,0x1F,0xC0,0x0C,
- 0x3F,0x80,0x7E,0x01,0xFC,0x7F,0xE4,0x1F,0xC7,0x00,0x00,0x1F,0xC0,0x3F,0x00,0x3F,0x80,0x00,0x01,0xFE,0x00,0x00,0xFE,0x07,0xF1,0x1F,0xC3,0xFF,0x17,0xE0,0x7E,0x0F,0xF0,0x7E,
- 0x1F,0xC1,0xFC,0x01,0xFF,0xFF,0xFC,0x1F,0xFF,0x80,0x00,0x0F,0xE0,0xFE,0x00,0x3F,0x80,0x00,0x03,0xFE,0x00,0x00,0xFE,0x07,0xFF,0x9F,0xFF,0xFF,0xFF,0xF8,0xFE,0x0F,0xFF,0xFC,
- 0x0F,0xFF,0xF8,0x00,0xFF,0xFF,0xFE,0x1F,0xFF,0x00,0x00,0x07,0xFF,0xFC,0x00,0x7F,0x00,0x00,0x0F,0xFF,0x80,0x01,0xFE,0x07,0xFF,0x8F,0xFE,0xFF,0xFB,0xFF,0xFC,0x07,0xFF,0xF8,
- 0x03,0xFF,0xE0,0x00,0xFF,0x9F,0xF8,0x0F,0xFC,0x00,0x00,0x01,0xFF,0xF0,0x00,0x7F,0x00,0x00,0x0F,0xFF,0x80,0x01,0xFC,0x03,0xFF,0x07,0xFC,0x7F,0xE1,0xFF,0xF0,0x03,0xFF,0xE0,
- 0x00,0xFF,0x00,0x00,0x3E,0x07,0xE0,0x03,0xE0,0x00,0x00,0x00,0x7F,0x80,0x00,0x7F,0x00,0x00,0x0F,0xFF,0x80,0x01,0xFC,0x00,0xF8,0x03,0xF0,0x3F,0x00,0x7F,0xC0,0x00,0x7F,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x81,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
-
- static unsigned char Icon[] =
- {
- 0x00,0x01,0x00,0x00, 0x00,0x02,0x80,0x00, 0x00,0x04,0x40,0x00, 0x00,0x08,0x20,0x00,
- 0x00,0x10,0x10,0x00, 0x00,0x20,0x08,0x00, 0x00,0x40,0x04,0x00, 0x00,0x84,0x02,0x00,
- 0xFF,0xF5,0xFF,0xFF, 0x02,0x04,0x00,0x80, 0x04,0x04,0x00,0x40, 0xFF,0xF5,0xFF,0xFF,
- 0x10,0x04,0x00,0x10, 0x20,0x04,0x00,0x08, 0xFF,0xF5,0xBF,0x3F, 0x80,0x04,0x40,0x82,
- 0x40,0x04,0x80,0x41, 0xFF,0x9D,0x30,0x2F, 0x10,0x3D,0xC8,0x14, 0x08,0x3E,0x7F,0x8F,
- 0xFF,0xBA,0x30,0x07, 0x02,0x01,0x00,0x07, 0x01,0x00,0x80,0x07, 0x00,0x80,0x60,0x07,
- 0x00,0x40,0x1F,0xE7, 0x00,0x20,0x02,0x1F, 0x00,0x10,0x04,0x07, 0x00,0x08,0x08,0x00,
- 0x00,0x04,0x10,0x00, 0x00,0x02,0x20,0x00, 0x00,0x01,0x40,0x00, 0x00,0x00,0x80,0x00
- };
-
- static char* Message[] =
- {
- "Written by Thomas R. Lawrence (tomlaw@world.std.com), Copyright (C) 1994.\x0d"
- "This program is distributed under version 2 of the GNU General Public\x0d"
- "License. It may be freely redistributed under certain conditions. There\x0d"
- "is ABSOLUTELY NO WARRANTY. Please read the License Agreement below.\x0d"
- "\x0d"
- "\x0d"
- ,
- "Special thanks to the following people:\x0d"
- "\x0d"
- " Craig Peeper showed me all kinds of awful file formats and described\x0d"
- " how many of the programs for MS-DOS/Windows worked. He also showed me\x0d"
- " how the Gravis UltraSound worked and gave me an efficient interpolation\x0d"
- " formula.\x0d"
- "\x0d"
- " Eric Oehler helped design the synthesizer and provided insight into\x0d"
- " synthesis algorithms and systems used by the 'pros'.\x0d"
- "\x0d"
- " William Annis supplied information about synthesis mechanisms and\x0d"
- " psychoacoustics.\x0d"
- "\x0d"
- "\x0d"
- ,
- " GNU GENERAL PUBLIC LICENSE\x0d"
- " Version 2, June 1991\x0d"
- "\x0d"
- ,
- " Copyright (C) 1989, 1991 Free Software Foundation, Inc.\x0d"
- " 675 Mass Ave, Cambridge, MA 02139, USA\x0d"
- " Everyone is permitted to copy and distribute verbatim copies\x0d"
- " of this license document, but changing it is not allowed.\x0d"
- "\x0d"
- ,
- " Preamble\x0d"
- "\x0d"
- " The licenses for most software are designed to take away your\x0d"
- "freedom to share and change it. By contrast, the GNU General Public\x0d"
- "License is intended to guarantee your freedom to share and change free\x0d"
- "software--to make sure the software is free for all its users. This\x0d"
- "General Public License applies to most of the Free Software\x0d"
- "Foundation's software and to any other program whose authors commit to\x0d"
- "using it. (Some other Free Software Foundation software is covered by\x0d"
- "the GNU Library General Public License instead.) You can apply it to\x0d"
- "your programs, too.\x0d"
- "\x0d"
- ,
- " When we speak of free software, we are referring to freedom, not\x0d"
- "price. Our General Public Licenses are designed to make sure that you\x0d"
- "have the freedom to distribute copies of free software (and charge for\x0d"
- "this service if you wish), that you receive source code or can get it\x0d"
- "if you want it, that you can change the software or use pieces of it\x0d"
- "in new free programs; and that you know you can do these things.\x0d"
- "\x0d"
- ,
- " To protect your rights, we need to make restrictions that forbid\x0d"
- "anyone to deny you these rights or to ask you to surrender the rights.\x0d"
- "These restrictions translate to certain responsibilities for you if you\x0d"
- "distribute copies of the software, or if you modify it.\x0d"
- "\x0d"
- ,
- " For example, if you distribute copies of such a program, whether\x0d"
- "gratis or for a fee, you must give the recipients all the rights that\x0d"
- "you have. You must make sure that they, too, receive or can get the\x0d"
- "source code. And you must show them these terms so they know their\x0d"
- "rights.\x0d"
- "\x0d"
- ,
- " We protect your rights with two steps: (1) copyright the software, and\x0d"
- "(2) offer you this license which gives you legal permission to copy,\x0d"
- "distribute and/or modify the software.\x0d"
- "\x0d"
- ,
- " Also, for each author's protection and ours, we want to make certain\x0d"
- "that everyone understands that there is no warranty for this free\x0d"
- "software. If the software is modified by someone else and passed on, we\x0d"
- "want its recipients to know that what they have is not the original, so\x0d"
- "that any problems introduced by othe quirements apply to the modified work as a whole. If\x0d"
- "identifiable sections of that work are not derived from the Program,\x0d"
- "and can be reasonably considered independent and separate works in\x0d"
- "themselves, then this License, and its terms, do not apply to those\x0d"
- "sections when you distribute them as separate works. But when you\x0d"
- "distribute the same sections as part of a whole which is a work based\x0d"
- "on the Program, the distribution of the whole must be on the terms of\x0d"
- "this License, whose permissions for other licensees extend to the\x0d"
- "entire whole, and thus to each and every part regardless of who wrote it.\x0d"
- "\x0d"
- ,
- "Thus, it is not the intent of this section to claim rights or contest\x0d"
- "your rights to work written entirely by you; rather, the intent is to\x0d"
- "exercise the right to control the distribution of derivative or\x0d"
- "collective works based on the Program.\x0d"
- "\x0d"
- ,
- "In addition, mere aggregation of another work not based on the Program\x0d"
- "with the Program (or with a work based on the Program) on a volume of\x0d"
- "a storage or distribution medium does not bring the other work under\x0d"
- "the scope of this License.\x0d"
- "\x0d"
- ,
- " 3. You may copy and distribute the Program (or a work based on it,\x0d"
- "under Section 2) in object code or executable form under the terms of\x0d"
- "Sections 1 and 2 above provided that you also do one of the following:\x0d"
- "\x0d"
- ,
- " a) Accompany it with the complete corresponding machine-readable\x0d"
- " source code, which must be distributed under the terms of Sections\x0d"
- " 1 and 2 above on a medium customarily used for software interchange; or,\x0d"
- "\x0d"
- ,
- " b) Accompany it with a written offer, valid for at least three\x0d"
- " years, to give any third party, for a charge no more than your\x0d"
- " cost of physically performing source distribution, a complete\x0d"
- " machine-readable copy of the corresponding source code, to be\x0d"
- " distributed under the terms of Sections 1 and 2 above on a medium\x0d"
- " customarily used for software interchange; or,\x0d"
- "\x0d"
- ,
- " c) Accompany it with the information you received as to the offer\x0d"
- " to distribute corresponding source code. (This alternative is\x0d"
- " allowed only for noncommercial distribution and only if you\x0d"
- " received the program in object code or executable form with such\x0d"
- " an offer, in accord with Subsection b above.)\x0d"
- "\x0d"
- ,
- "The source code for a work means the preferred form of the work for\x0d"
- "making modifications to it. For an executable work, complete source\x0d"
- "code means all the source code for all modules it contains, plus any\x0d"
- "associated interface definition files, plus the scripts used to\x0d"
- "control compilation and installation of the executable. However, as a\x0d"
- "special exception, the source code distributed need not include\x0d"
- "anything that is normally distributed (in either source or binary\x0d"
- "form) with the major components (compiler, kernel, and so on) of the\x0d"
- "operating system on which the executable runs, unless that component\x0d"
- "itself accompanies the executable.\x0d"
- "\x0d"
- ,
- "If distribution of executable or object code is made by offering\x0d"
- "access to copy from a designated place, then offering equivalent\x0d"
- "access to copy the source code from the same place counts as\x0d"
- "distribution of the source code, even though third parties are not\x0d"
- "compelled to copy the source along with the object code.\x0d"
- "\x0d"
- ,
- " 4. You may not copy, modify, sublicense, or distribute the Program\x0d"
- "except as expressly provided under this License. Any attempt\x0d"
- "otherwise to copy, modify, sublicense or distribute the Program is\x0d"
- "void, and will automatically terminate your rights under this License.\x0d"
- "However, parties who have received copies, or rights, from you under\x0d"
- "this License will not have their license c., 675 Mass Ave, Cambridge, MA 02139, USA.\x0d"
- "\x0d"
- ,
- "Also add information on how to contact you by electronic and paper mail.\x0d"
- "\x0d"
- "If the program is interactive, make it output a short notice like this\x0d"
- "when it starts in an interactive mode:\x0d"
- "\x0d"
- ,
- " Gnomovision version 69, Copyright (C) 19yy name of author\x0d"
- " Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\x0d"
- " This is free software, and you are welcome to redistribute it\x0d"
- " under certain conditions; type `show c' for details.\x0d"
- "\x0d"
- ,
- "The hypothetical commands `show w' and `show c' should show the appropriate\x0d"
- "parts of the General Public License. Of course, the commands you use may\x0d"
- "be called something other than `show w' and `show c'; they could even be\x0d"
- "mouse-clicks or menu items--whatever suits your program.\x0d"
- "\x0d"
- ,
- "You should also get your employer (if you work as a programmer) or your\x0d"
- "school, if any, to sign a \"copyright disclaimer\" for the program, if\x0d"
- "necessary. Here is a sample; alter the names:\x0d"
- "\x0d"
- ,
- " Yoyodyne, Inc., hereby disclaims all copyright interest in the program\x0d"
- " `Gnomovision' (which makes passes at compilers) written by James Hacker.\x0d"
- "\x0d"
- ,
- " <signature of Ty Coon>, 1 April 1989\x0d"
- " Ty Coon, President of Vice\x0d"
- "\x0d"
- ,
- "This General Public License does not permit incorporating your program into\x0d"
- "proprietary programs. If your program is a subroutine library, you may\x0d"
- "consider it more useful to permit linking proprietary applications with the\x0d"
- "library. If this is what you want to do, use the GNU Library General\x0d"
- "Public License instead of this License.\x0d"
- };
- #define MESSAGELENGTH (sizeof(Message) / sizeof(Message[0]))
-
-
- static AboutBoxWindowRec* CurrentAboutBox = NIL;
-
-
- /* return a non-null terminated heap allocated block */
- static char* GetTheMessage(void)
- {
- char* Accumulator;
- long Scan;
-
- Accumulator = AllocPtrCanFail(0,"GetTheMessage");
- if (Accumulator == NIL)
- {
- FailurePoint1:
- return NIL;
- }
- for (Scan = 0; Scan < MESSAGELENGTH; Scan += 1)
- {
- char* String;
- char* Meow;
-
- String = StringToBlockCopy(Message[Scan]);
- if (String == NIL)
- {
- FailurePoint2:
- ReleasePtr(Accumulator);
- goto FailurePoint1;
- }
- Meow = ConcatBlockCopy(Accumulator,String);
- ReleasePtr(String);
- if (Meow == NIL)
- {
- goto FailurePoint2;
- }
- ReleasePtr(Accumulator);
- Accumulator = Meow;
- }
- return Accumulator;
- }
-
-
- /* show the about box. this creates a new box if there isn't one, or raises the */
- /* window to the top if there already is one. */
- void ShowAboutBox(void)
- {
- if (CurrentAboutBox != NIL)
- {
- ActivateThisWindow(CurrentAboutBox->ScreenID);
- }
- else
- {
- char* Data;
-
- CurrentAboutBox = (AboutBoxWindowRec*)AllocPtrCanFail(
- sizeof(AboutBoxWindowRec),"AboutBoxWindowRec");
- if (CurrentAboutBox == NIL)
- {
- FailurePoint1:
- return;
- }
- CurrentAboutBox->ScreenID = MakeNewWindow(eDocumentWindow,eWindowClosable,
- eWindowNotZoomable,eWindowNotResizable,DialogLeftEdge(WIDTH),
- DialogTopEdge(HEIGHT),WIDTH,HEIGHT,
- (void (*)(void*))&AboutBoxWindowUpdator,CurrentAboutBox);
- if (CurrentAboutBox->ScreenID == 0)
- {
- FailurePoint2:
- ReleasePtr((char*)CurrentAboutBox);
- CurrentAboutBox = NIL;
- goto FailurePoint1;
- }
- CurrentAboutBox->Information = NewTextEdit(CurrentAboutBox->ScreenID,
- eTEVScrollBar,GetMonospacedFont(),9,EditX,EditY,EditWidth,EditHeight);
- if (CurrentAboutBox->Information == NIL)
- {
- FailurePoint3:
- KillWindow(CurrentAboutBox->ScreenID);
- goto FailurePoint2;
- }
- Data = GetTheMessage();
- if (Data == NIL)
- {
- FailurePoint4:
- DisposeTextEdit(CurrentAboutBox->Information);
- goto FailurePoint3;
- }
- TextEditNewRawData(CurrentAboutBox->Information,Data,"\x0d");
- ReleasePtr(Data);
- /* notify window management */
- CurrentAboutBox->MyGenericWindow
- = CheckInNewWindow(CurrentAboutBox->ScreenID,CurrentAboutBox,
- (void (*)(void*,MyBoolean,OrdType,OrdType,ModifierFlags))&AboutBoxWindowDoIdle,
- (void (*)(void*))&AboutBoxWindowBecomeActive,
- (void (*)(void*))&AboutBoxWindowBecomeInactive,
- (void (*)(void*))&AboutBoxWindowJustResized,
- (void (*)(OrdType,OrdType,ModifierFlags,void*))&AboutBoxWindowDoMouseDown,
- (void (*)(unsigned char,ModifierFlags,void*))&AboutBoxWindowDoKeyDown,
- (void (*)(void*))&AboutBoxWindowClose,
- (void (*)(void*))&AboutBoxWindowMenuSetup,
- (void (*)(void*,MenuItemType*))&AboutBoxWindowDoMenuCommand);
- if (CurrentAboutBox->MyGenericWindow == NIL)
- {
- FailurePoint5:
- goto FailurePoint4;
- }
- SetWindowName(CurrentAboutBox->ScreenID,"About Out Of Phase...");
- AboutBoxWindowUpdator(CurrentAboutBox);
- }
- }
-
-
- /* close the about box. does nothing if no about box is open */
- void HideAnyAboutBoxes(void)
- {
- if (CurrentAboutBox != NIL)
- {
- CheckPtrExistence(CurrentAboutBox);
- CheckOutDyingWindow(CurrentAboutBox->MyGenericWindow);
- DisposeTextEdit(CurrentAboutBox->Information);
- KillWindow(CurrentAboutBox->ScreenID);
- ReleasePtr((char*)CurrentAboutBox);
- CurrentAboutBox = NIL;
- }
- }
-
-
- static void AboutBoxWindowDoIdle(AboutBoxWindowRec* Window,
- MyBoolean CheckCursorFlag, OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoIdle: window pointer inconsistency"));
- TextEditUpdateCursor(Window->Information);
- if (CheckCursorFlag)
- {
- if (TextEditIBeamTest(Window->Information,XLoc,YLoc))
- {
- SetIBeamCursor();
- }
- else
- {
- SetArrowCursor();
- }
- }
- }
-
-
- static void AboutBoxWindowBecomeActive(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowBecomeActive: window pointer inconsistency"));
- EnableTextEditSelection(Window->Information);
- }
-
-
- static void AboutBoxWindowBecomeInactive(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowBecomeInactive: window pointer inconsistency"));
- DisableTextEditSelection(Window->Information);
- }
-
-
- static void AboutBoxWindowJustResized(AboutBoxWindowRec* Window)
- {
- EXECUTE(PRERR(ForceAbort,"AboutBoxWindowJustResized: about box can't resize"));
- }
-
-
- static void AboutBoxWindowDoMouseDown(OrdType XLoc, OrdType YLoc,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoMouseDown: window pointer inconsistency"));
- if (TextEditHitTest(Window->Information,XLoc,YLoc))
- {
- TextEditDoMouseDown(Window->Information,XLoc,YLoc,Modifiers);
- }
- }
-
-
- static void AboutBoxWindowDoKeyDown(unsigned char KeyCode,
- ModifierFlags Modifiers, AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoKeyDown: window pointer inconsistency"));
- if ((KeyCode == eLeftArrow) || (KeyCode == eRightArrow)
- || (KeyCode == eUpArrow) || (KeyCode == eDownArrow))
- {
- TextEditDoKeyPressed(Window->Information,KeyCode,Modifiers);
- }
- else if (KeyCode == eCancelKey)
- {
- AboutBoxWindowClose(Window);
- }
- }
-
-
- static void AboutBoxWindowClose(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowClose: window pointer inconsistency"));
- HideAnyAboutBoxes();
- }
-
-
- static void DrawImage(WinType* Window, OrdType X, OrdType Y, OrdType Width,
- OrdType Height, unsigned char* RawData)
- {
- Bitmap* TheBitmap;
-
- TheBitmap = MakeBitmap(RawData,Width,Height,((Width + 7) / 8));
- if (TheBitmap != NIL)
- {
- SetClipRect(Window,0,0,WIDTH,HEIGHT);
- DrawBitmap(Window,X,Y,TheBitmap);
- DisposeBitmap(TheBitmap);
- }
- }
-
-
- static void AboutBoxWindowUpdator(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowUpdator: window pointer inconsistency"));
- DrawImage(Window->ScreenID,IPX,IPY,IPWidth,IPHeight,IntegralProductionsdx);
- DrawTextLine(Window->ScreenID,GetScreenFont(),9,"Presents",StrLen("Presents"),
- (WIDTH - LengthOfText(GetScreenFont(),9,"Presents",StrLen("Presents"),ePlain)) / 2,
- PresentsY,ePlain);
- DrawImage(Window->ScreenID,StupidX,StupidY,StupidWidth,StupidHeight,NameOfProgram);
- DrawImage(Window->ScreenID,IconX,IconY,IconWidth,IconHeight,Icon);
- DrawTextLine(Window->ScreenID,GetScreenFont(),9,"Version "VersionString,
- StrLen("Version "VersionString),5,HEIGHT - GetFontHeight(GetScreenFont(),9) - 3,
- ePlain);
- TextEditFullRedraw(Window->Information);
- }
-
-
- static void AboutBoxWindowMenuSetup(AboutBoxWindowRec* Window)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowMenuSetup: window pointer inconsistency"));
- if (TextEditIsThereValidSelection(Window->Information))
- {
- EnableMenuItem(mCopy);
- ChangeItemName(mCopy,"Copy Text");
- }
- EnableMenuItem(mSelectAll);
- ChangeItemName(mSelectAll,"Select All Text");
- ChangeItemName(mCloseFile,"Close About Box");
- EnableMenuItem(mCloseFile);
- }
-
-
- static void AboutBoxWindowDoMenuCommand(AboutBoxWindowRec* Window,
- MenuItemType* MenuItem)
- {
- CheckPtrExistence(Window);
- ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
- "AboutBoxWindowDoMenuCommand: window pointer inconsistency"));
- if (MenuItem == mCopy)
- {
- TextEditDoMenuCopy(Window->Information);
- }
- else if (MenuItem == mSelectAll)
- {
- TextEditDoMenuSelectAll(Window->Information);
- }
- else if (MenuItem == mCloseFile)
- {
- AboutBoxWindowClose(Window);
- }
- else
- {
- EXECUTE(PRERR(ForceAbort,"AboutBoxWindowDoMenuCommand: unknown command"));
- }
- }
-